#ifndef ORBMATCH_H
#define ORBMATCH_H



#include <iostream> //to_string(int)
#include <sstream>
#include <ctime>
#include <cmath>
#include <string>

#include <opencv2/imgproc.hpp> //ÒýÈëcvtColor()
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "opencv2/calib3d/calib3d.hpp"			 //findHomography

using namespace std;
using namespace cv;

//method: "flannmatch", "bfmatch"
struct orbMatch
{
    string method;
    bool isShowKeyPoints;
    bool isShowMatchImage;
};

//method: "flannmatch", "bfmatch"
//matches[i].distance <= max(float(goodmatch_val1 * min_dist), goodmatch_val2)
//if (tt > 200) continue;
int orbMatch(cv::Mat& in_src_img, cv::Mat& in_dst_img, std::vector<cv::Point2f>& outPoint1, std::vector<cv::Point2f>& outPoint2, struct orbMatch orbArg, 
                float goodmatch_val1=2.0, float goodmatch_val2=20.0, float goodmatch_val3=200.0);
#endif